我正在使用ThinkingSphinx进行全文搜索,关注thisvideo.我想做以下事情:@articles=Article.search(params[:search],:conditions=>"published_atISNOTNULL",:order=>:created_at)问题是这行不通。搜索方法似乎只接受散列条件。我尝试了几种方法,但我对如何将“published_atISNOTNULL”表示为哈希一无所知... 最佳答案 在Railscasts给出了解决方案Ifyouwant*all*resultsforthatm
我有str1和str2。str1可能是也可能不是空字符串,我想构造一个数组,如下所示:str1=""str2="bar"["bar"]或str1="foo"str2="bar"["foo","bar"]我现在只能想出一种在两条线上执行此操作的方法,但我知道必须有一种方法可以在一条线上执行此操作。 最佳答案 在ruby1.9中[*(str1unlessstr1.empty?),str2]在ruby1.8中[(str1unlessstr1.empty?),str2].compact 关于ru
我想根据created_on>=somedateANDnameINsomelistofnames的组合查找记录。对于“>=”,我必须使用sql条件。对于“IN”,我必须使用条件散列,其中键是:name,值是名称数组。有没有办法将两者结合起来? 最佳答案 您可以在rails2.1及更高版本中使用命名作用域ClassTest"created_on>2005-01-01"named_scope:named_fred,:conditions=>{:name=>"fred"}end那么你可以做Test.created_after_2005.n
我有一组STI子类继承自User基类。我发现在子类定义中的某些条件下,对子类的查询没有正确使用type条件。classUser在开发中加载Rails控制台时,它会按照我的预期进行:Admin:SELECT`users`.*FROM`users`WHERE`users`.`type`IN('Admin')但是当点击应用程序(localhost/pow)时,它缺少type条件,我明白了:Admin:SELECT`users`.*FROM`users`但在部署到暂存服务器时不是来自应用程序:Admin:SELECT`users`.*FROM`users`WHERE`users`.`type`
我能做到:@items=@items.select{|i|i.color=='blue'}@items=@items.select{|i|i.color=='blue'||i.color=='red'}如果我有未知数量的颜色并且我想全部选择它们怎么办?即['red','blue','green','purple']#or['blue','red']我一直在处理创建多个临时数组然后将它们合并或扁平化为一个的一堆代码,但我对此非常不满意。 最佳答案 试试这个:colors=['red','blue','green','purple']@
在我的数据库中,我有一个bool字段:is_in_city。在View中,我尝试将check_box_tag设置为:=check_box_tagc.is_in_city但即使db值为true,它也不会被检查。怎么了?我需要做这样的chekbox,它不是/根据存储在数据库中的dbbool字段值进行检查。我怎样才能做到这一点?另外,如何将我的属性再设置一个复选框? 最佳答案 正确使用check_box_tag方法是这样的:=check_box_tag:name,value,checkedvalue可以是任何东西,checked(应该是)
我有一个值数组和一个确定顺序的数组。如何按给定顺序快速重新排列数组?data=['0','1','2','3','4','5']order=[3,1,2,0,4,5]我要:data=['3','1','2','0','4','5'] 最佳答案 您可以使用values_at为此类任务编写的方法:data=['0','1','2','3','4','5']order=[3,1,2,0,4,5]data.values_at*order#=>["3","1","2","0","4","5"] 关
我在Ruby中有一个任意方法可以产生多个值,因此可以将其传递给一个block:defarbitraryyield1yield2yield3yield4endarbitrary{|x|putsx}我想修改此方法,以便在没有block的情况下,它仅将值作为数组返回。所以这个构造也可以工作:myarray=arbitrarypa----->[1,2,3,4,5]这在Ruby中可行吗? 最佳答案 defarbitraryvalues=[1,2,3,4]returnvaluesunlessblock_given?values.each{|va
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion有人可以帮我缩短下面的方法吗?我从这个开始,我非常喜欢它:defself.some_hash{"foo"=>"bar"}end现在我想添加一个可选键。我能想到的最简洁的语法是:defself.some_hash(some_key=nil)answer={"foo"=>"bar"}answer[some_key]="yucky,long-windedsyntax"ifsome_keyanswer
我正在使用ActiveAdmin和Formtastic。我有一张发票表格,其中包含发货下拉菜单。formdo|f|f.inputs"ShipmentDetails"dof.input:shipment_id,:label=>"Shipment",:as=>:select,:collection=>Shipment.find(invoiceless_shipments,:order=>"file_number",:select=>"id,file_number").map{|v|[v.file_number,v.id]}f.input:issued_at,:label=>"Date",: